home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
-
- FILE *ofp;
-
- void main( void ) {
-
- double big, small;
- float fbig, fsmall;
- int flag[4], power;
-
- ofp = fopen( "roundoff.out", "w" );
-
- big = small = 1.0;
- fbig = (float)big;
-
- for( power = 1; power <= 50; power++ ) {
-
- small *= 0.1;
- fsmall = (float)small;
- flag[0] = flag[1] = flag[2] = flag[3] = 1;
-
- if( big+small == big )
- flag[0] = 0;
- if( (big+small) == big )
- flag[1] = 0;
-
- if( fbig+fsmall == fbig )
- flag[2] = 0;
- if( (fbig+fsmall) == fbig )
- flag[3] = 0;
-
- printf( "Power = %2d, Big+Small = %e, Flags = %d %d %d %d\n",
- power, big+small, flag[0], flag[1], flag[2], flag[3] );
- fprintf( ofp, "Power = %2d, Big+Small = %e, Flags = %d %d %d %d\n",
- power, big+small, flag[0], flag[1], flag[2], flag[3] );
- }
- }